1
Наследование и эволюция состояния
AI035Lesson 2
00:00

В Ruby наследование — это не просто обмен методами; речь идёт о эволюции состояния. Когда мы создаём подкласс, например, KaraokeSong < Song, устанавливая связь «является-частью»: дочерний класс наследует структуру родителя, одновременно уточняя свою идентичность.

1. Цепочка инициализации

Ключевое слово super является мостом между поколениями. Внутри initialize, вызов super передаёт аргументы в конструктор родительского класса, обеспечивая инициализацию базовых переменных экземпляра (@name, @artist), которые задаются до того, как подкласс добавит своё специфическое состояние (@lyrics).

class Song@name, @artistclass KaraokeSong@lyricssuper() вызывает родительский класс

2. Дополнение методов

Переопределение метода, такого как to_s , позволяет расширить поведение. Вызов super в новой реализации, мы получаем строковый результат родительского метода и просто добавляем новые данные подкласса, сохраняя чистую эволюционную линию.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>